import axios from 'axios'
import store from '@/store'
import { Message } from 'element-ui'
import router from '@/router'
const service = axios.create({
  // 基础地址：作用后面写的接口地址都会和基础地址拼接在一起形成完整的地址
  baseURL: 'https://api-hmzs.itheima.net/v1',
  timeout: 5000 // request timeout
})

// 请求拦截器  发送请求的时候执行
service.interceptors.request.use(

  // 请求时，配置请求头信息，携带token等信息
  config => {
    const token=store.state.user.token
    if(token){
      config.headers.Authorization = token
    }
    return config  //携带的是请求的信息 并且return不能省略
  },

  // 请求失败时执行的函数
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器  当服务器响应数据时执行
service.interceptors.response.use(

  // 当数据响应成功的时候执行
  response => {
    return response.data
  },

  // 当数据响应失败时执行
  error => {

    console.dir(error.response.status)
    if (error.response.status === 401) {
      console.log(111)
      // 1. 跳转到登录
      router.push('/login')
      // 2. 清空用户数据
      store.commit('user/removeToken')
    }
    Message.error(error.response.data.msg)
    
    
    return Promise.reject(error)
  }
)

export default service
